Music streaming, playlist creation and streaming architecture

ABSTRACT

A system and method for making categorized music tracks available to end user applications. The tracks may be categorized based on computer-derived rhythm, texture and pitch (RTP) scores for tracks derived from high-level acoustic attributes, which is based on low level data extracted from the tracks. RTP scores are stored in a universal database common to all of the music publishers so that the same track, once RTP scored, does not need to be re-RTP scored by other music publishers. End user applications access an API server to import collections of tracks published by publishers, to create playlists and initiate music streaming. Each end user application is sponsored by a single music publisher so that only tracks capable of being streamed by the music publisher are available to the sponsored end user application.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation-in-part of U.S. patent applicationSer. No. 16/837,796, filed Apr. 11, 2020, which is acontinuation-in-part of U.S. patent application Ser. No. 16/292,193,filed Mar. 4, 2019, now U.S. Pat. No. 10,623,480, issued Apr. 14, 2020;which is a continuation-in-part of U.S. patent application Ser. No.15/868,902, filed Jan. 11, 2018, now U.S. Pat. No. 10,225,328, issuedMar. 5, 2019; which is a continuation-in-part of U.S. patent applicationSer. No. 14/671,973, filed Mar. 27, 2015, now U.S. Pat. No. 9,875,304,issued Jan. 23, 2018; which is a continuation-in-part of U.S. patentapplication Ser. No. 14/603,324, filed Jan. 22, 2015, now U.S. Pat. No.10,061,476, issued Aug. 28, 2018, and is a continuation-in-part of U.S.patent application Ser. No. 14/603,325, filed Jan. 22, 2015; whichclaims benefit under 35 U.S.C. §119(e) of Provisional Application No.61/971,490, filed Mar. 27, 2014; the entire contents of each of whichare incorporated herein by reference.

U.S. patent application Ser. No. 15/868,902 is also acontinuation-in-part of U.S. patent application Ser. No. 14/671,979,filed Mar. 27, 2015, now U.S. Pat. No. 10,242,097, issued Mar. 26, 2019,the entire contents of which are incorporated herein by reference.

TECHNICAL FIELD

The present disclosure relates to music streaming services.

BACKGROUND

Many music streaming services, such as APPLE MUSIC, AMAZON MUSIC,PANDORA, SIRIUSXM, SPOTIFY, TIDAL, and YOUTUBE, provide a range offeatures that allow users to listen to curated playlists, or create andsave their own, based on the catalog of music tracks that have beenlicensed to or are owned by the streaming service. Typically, only oneplaylist can be selected at one time to be played. Such services alsotypically seek to develop catalogs of millions of tracks so there issomething for every taste. At the same time, many other music publishingentities, such as radio stations, gaming companies, independent recordlabels, entertainment companies, have catalogs of music tracks availablethat may or may not be available to the streaming service, eitherbecause the entity does not have the right to make them available, isconcerned that licensing the music tracks will not generate enoughincome from the streaming service, or the entity wants the end users toknow the entity provided the music tracks but has no practical way ofdoing so through the streaming service.

If a music publisher wants to stream music to users, the music publisherneeds to obtain a streaming service and make some type of third partyapplication available to the user. Typically, the third partyapplication is browser-based so that it can used on many differentdevices, such as desktops, laptops and other mobile devices. Suchapplications, however, are built around a traditional broadcasting modelwhere revenue is either generated from the application based onprogrammatic streaming with inserted advertising or subscriptionservices.

SUMMARY

A system and method for music publishers to provide non-programmaticstreamed music to end users that enables end users to createpersonalized playlists. The playlists may be based on computer-derivedrhythm, texture and pitch (RTP) scores for predetermined tracks. The RTPscores may be derived from high-level acoustic attributes for tracksdetermined by an analyzed extraction of low-level data from the tracks.The RTP scores may be used to determine a category for each track amongthe plurality of categories and playlists of the tracks may be based onthe categories and other factors.

The RTP scores may be classified by a plurality of music publishers andstored in a universal database common to all of the music publishers.The universal database may include collections of tracks assembled byeach of the music publishers. Each track may have an RTP score, acategory that corresponds to the RTP score, and metadata associated withthe track, but does not include the audio file. A universal end userapplication accesses an API server to import collections, create andsave playlists, and initiate the streaming of music from a streamingserver to the end user application. Each universal end user applicationis sponsored by a single music publisher so that only tracks capable ofbeing streamed by the music publisher are available to the sponsored enduser application and so that the music publisher can contributecollections to and to customize the sponsored end user application in amanner unique to that music publisher.

BRIEF DESCRIPTION OF THE DRAWINGS

Throughout the drawings, reference numbers may be re-used to indicatecorrespondence between referenced elements. The drawings are provided toillustrate examples described herein and are not intended to limit thescope of the disclosure.

FIG. 1 is an embodiment of a flow chart illustrating how tracks aresampled, low-level data is extracted and RTP scores are determined andmapped to moods, optionally with intensity levels.

FIG. 2 is an embodiment of an illustration of the various elements of anexemplary system and the interaction between front end and back endelements.

FIG. 3A is an embodiment of an illustration of a music import & viewscreen of an end user web application.

FIG. 3B is an embodiment of an illustration of a create playlist screenof an end user web application.

FIG. 3C is an embodiment of an illustration of a playlists screen of anend user web application.

FIG. 3D is an embodiment of an illustration of an edit playlist screenof an end user web application.

FIG. 4 is an embodiment of an illustration of a process for onboarding amusic publisher.

FIG. 5 is an embodiment of an illustration of a process for creating,publishing and exporting track collections and making various optionselections and inputting related information.

FIG. 6 is an embodiment of an illustration of a process for onboardingan end user and customizing the end user application.

FIG. 7A is an embodiment of an illustration of a process for developingusage statistics at the music publisher level.

FIG. 7B is an embodiment of an illustration of a process for developingusage statistics at the universal level.

DETAILED DESCRIPTION OF ILLUSTRATIVE EMBODIMENTS

Embodiments of the present disclosure are primarily directed to musiccategorization, playlist creation and music streaming to an end userapplication. In particular, embodiments involve a music categorizationsystem that objectively categories music based on rhythm, texture andpitch (RTP) values or scores, from which the mood or some other categoryof the music may be determined and used to create playlists, which maythen be streamed to end users through an end user application that canbe customized by the music publisher.

With respect to mood, when someone listens to a track, the track tendsto evoke some emotion. This may be because of some personal connection auser has to the track, such as memories or experiences related to thetrack, but may also be because of the track's inherent qualities. Sincethose inherent qualities may be represented by frequency-related data(i.e., frequencies, structure and organization), that frequency-relateddata may be used to identify those inherent qualities. The presentdisclosure describes how spectrograms, whether based on chromagrams orusing other forms of spectrograms, and other data may be used toobjectively determine the inherent qualities of RTP, which may then besubjectively or objectively mapped to moods to identify tracks in a newmanner.

Values for RTP may be determined holistically, based on low-level dataextracted from the music, or high-level data constructed or derived fromthe low-level data. For example, a holistic method for determining RTPmay be as follows. All music can be identified by its frequency-relateddata, such as an audio spectrogram. Audio spectrograms may be based on ashort-term Fourier transform developed to provide a more complete andprecise extracted representation of a track. The spectrogram may be atwo-dimensional (2-D) representation of the intensity of frequency overtime, like a waveform, but provide a more accurate extractedrepresentation of the track because the spectrogram shows changes inintensity at specific frequencies, much like a musical score. The 2-Dspectrogram may show more visual distinctions than a 1-D waveform basedon signal differences due to different audio sources, such as differentvoices and different types of instruments being played, etc.

A solution for analyzing spectrograms extracted from audio files mayinvolve converting each audio file into mel-spectrograms, representingmultiple audio features extracted from each predetermined period (suchas one second) of each audio file, that are then input to a trainedneural network. This neural network may be trained based on an ontologyof audio event classes and a large-scale collection of human-labeledsound clips. In an embodiment, desired layers from this pre-trainednetwork may then be extracted to generate a vector of audio features foreach predetermined period. In an embodiment, the vector may include aplurality of features for each one second of input audio.

While the audio representations, chromagrams or mel-spectrograms may berobust, they do not lend themselves well to visual comparative analysisand need to be further compacted to be useful in that regard. There area number of ways in which chromagrams may be compacted throughfiltering. For example, a chromagram image may be scanned from left toright, one pixel at a time, in grayscale, to create a large number ofsubimages. Then, characteristic filters may be applied to the subimagesto capture intensity differences over time in the musical notesrepresented by the subimages. Each filter may calculate the sum ofspecific areas of the subimages, compare the sums, and arrange the areasin a number of ways.

The arrangement of filter images may be placed over the subimages,adjusted in size (as long as the filter images fit within the pixel sizeof the subimage), and the resulting black and white areas may beprocessed to derive a single real number representing the arrangement.Every characteristic filter may have one or more coefficients associatedwith it that specify the rules for quantizing the real number so thefinal result is an integer.

Filtering and comparative analysis is not required in all embodiments.Once an audio classification, either through the neural network analysisor audio fingerprint analysis, has been determined for a track havingknown RTP scores determined through other means (such as a humanlistener, a spectrum analyzer, or other electrical measurement tool),that audio classification may be compared to other audio classificationshaving unknown RTP scores to see if matches can be found. Matches mayinclude any corresponding tracks having the same or very similar RTPscores. If there are no matches, then further comparisons may need to berun until the unknown RTP scores in the audio classification have beenidentified. Although this holistic approach might involve a humanlistening to the music to determine known RTP scores corresponding to asufficient number of tracks for comparative purposes, the approach isstill much more efficient than the existing technique of relying onhumans to listen to every track.

In an embodiment based on the audio classifications, as illustrated inFIG. 1, tracks sufficient to create a sample set may be listened to byhumans to develop RTP scores that correspond to each track (step 100).Those tracks may then be sampled, step 102, by a neural net trainedmusic data extractor, such as any of those described herein. Thelow-level extracted data may include acoustic descriptors characterizingloudness, dynamic complexity, spectral shapes, barkbands, melbands,Equivalent Rectangular Bandwidth (ERB) bands, etc., rhythm descriptorscharacterizing beats per minute (BPM), BPM histograms, onset rates,etc., and tonal descriptors characterizing keys, chords, scales, etc.The low-level data may then be analyzed, step 103, to derive high-levelacoustic attributes or audio features based on the low-level data and/orhigh-level data, and may be further analyzed, step 104, by a neuralnetwork to determine and classify other high-level data, such as rhythm,texture and pitch. The RTP data may be represented in different forms.In an embodiment, the RTP scores are represented on a half-point scaleranging from 1 to 5.

In an embodiment, a greedy algorithm may analyze all of the low-leveldata extracted from each track in the sample set and all of thehigh-level data extracted therefrom to determine which low-level dataand high-level data contributes to correct solutions for RTP scores ofeach track, based on the known RTP scores. The greedy algorithm mayoperate by sorting through the low-level data and high-level data toselect the best data candidates for solving for correct RTP scores foreach track. Each best candidate may then be analyzed to determine if thecandidate can be used to contribute to the solution. If the candidatecan contribute to the solution, a value is assigned to each contributingcandidate based on whether it fully or partially solves the solution. Ifthere is no candidate that provides a full solution (as is almost alwaysthe case), a collection of contributing candidates is identified thateither provides a complete solution or gets closest to the completesolution.

In an embodiment, the following low-level data may form a collection ofcontribution candidates for a solution for rhythm (R):

-   -   1. Beats per minute histogram and highest peak, spread of the        first peak, first peak weight, and first peak heats per minute.    -   2. Energy (magnitude) in a frequency band.    -   3. Energy in one or more ERB bands of the spectrum and values of        crest (ratio between the maximum value and the arithmetic mean)        and flatness (ratio between the geometric mean and the        arithmetic mean converted to db scale).    -   4. Weighted mean of frequencies as a measure of the spectral        centroid, where the magnitude of the frequencies are the        weights.    -   5. Skewness of the 0^(th), 1^(st), 2^(nd), 3^(rd) and 4^(th)        central moments.    -   6. Minimum zero-crossing rate.    -   7. Niel-frequency cepstrum coefficients (MFCCs).    -   8. High frequency content.    -   9. Estimation of silence in a frame.

In an embodiment, the following low-level data may form a collection ofcontribution candidates for a solution for texture (T):

1. Shannon entropy (quantification of diversity).

2. Beats per minute histogram and mean of first peak spread and secondbeak beats per minute.

-   -   3. Energy in one or more Bark bands of the spectrum and values        of crest (ratio between the maximum value and the arithmetic        mean) and flatness (ratio between the geometric mean and the        arithmetic mean converted to db scale),    -   4. MFCCs.    -   5. Spectral kurtosis and energy.    -   6. Beat energy within the whole spectrum.

In an embodiment, the following low-level data may form a collection ofcontribution candidates for a solution for pitch (Pt):

-   -   1. Weighted mean of frequencies as a measure of the spectral        centroid, where the magnitude of the frequencies are the        weights.    -   2. Shannon entropy (quantification of diversity).    -   3. Beats per minute histogram and first peak weight.    -   4. High frequency content.    -   5. Energy in ERB bands of the spectrum and values of flatness.    -   6. Spectral energy.

Different low-level data extractors may extract different data from thespectrograms than that indicated above. In such a case, the greedyalgorithm may identify different low-level data that forms thecollection of candidates for a solution to either R, I or P High-leveldata extracted from the low-level data may be identified in a similarmanner as described herein.

In an embodiment, rather than use a greedy algorithm, the extractedlow-level data for each track may be converted to MFCCs (Mel-frequencycepstral coefficients) as an encoding step and then input into anartificial neural network. The layers of the neural network may extractdata from the MFCCs for each track and combine that MFCC data with otherdata to identify an RTP score for each track, wherein the identificationis based on the neural net being trained with known associations betweenMFCCs and RTP scores. The other data may include audio dataaugmentation, which may overcome problems associated with data scarcityand otherwise improve recognition performance. Audio data augmentationinvolves the creation of new synthetic training samples based on smallperturbations in a training sample set to fill in gaps in the trainingdata. A sufficiently large set of tracks with known RTP scores and otherdata, such as the audio data augmentation, may lead to a neural networksufficiently trained to determine unknown UP scores for tracks withreasonably sufficient accuracy.

As noted above, RTP scores in an embodiment may range from 1 to 5 on ahalf point scale, i.e., 1.0, 1.5, 2.0, 2.5, 3.0, 3.5, 4.0, 4.5 and 5.0,As such the RTP scores may constitute a spectrum of scores ranging from(1.0,1.0,1.0) to (5.0,5.0,5.0). These RTP scores may be grouped invarious ways. In an embodiment, such as step 105 of FIG. 1, the RTPscores may be grouped based on a small number of categories, such as thesix moods of happy, excited, manic, peaceful, sad and cautious, or eightmoods where cautious may be further separated into cautious/excited,cautious/peaceful and cautious/sad. In the above noted moods, sad mayrepresent RTP scores with lower values and manic may represent RTPscores with higher values. For example, RTP (1.0,1.0,1.0) may correspondto sad and RTP (5.0,5.0,5.0) may correspond to manic, while RTP(3.0,3.0,3.0) may correspond to one of cautious/excited,cautious/peaceful and cautious/sad.

The moods identified above are just examples of categories into whichsimilar RTP scored tracks may be organized. There could be many morecategories. The categories may have any name or number associated witheach one, such as the moods above, colors, locations, etc., includingcompletely arbitrary or made-up words. Nevertheless, since it has beenfound that tracks with RTP scores such as (1.0,2.0,1,0) and(1.0,1.0,2.0) and (2.0,2.0,2.0) are similarly sounding, it makes logicalsense to map those tracks to the same category.

Once the RTP scores have been grouped or mapped as desired, the RTPscores within a group may be further refined. For example, when RTPscores are mapped to moods, the RTP scores corresponding to a mood mayfall along a spectrum of intensities. For example, RTP (1.0,1.0,1.0) maybe the lowest intensity for sad, while RTP (3.0,5,0,2,0) may be thehighest intensity for sad, with all other RTP scores corresponding tosad falling somewhere in between the lowest and highest RTP scores.Hence, the intensity levels for RTP scores within each mood may bedetermined based on a spectrum or distance factor from a centroid of3-dimensional space. Although other methods of measuring intensity, beutilized, the above example may be used to group tracks corresponding toa mood as low, medium and high intensity (or any other suitablegradation) with respect to that mood, as will be further describedbelow.

The description provided above for determining RTP scores for tracks maybe based on averaging, where various averages are used to determine theRTP scores. For example, the entire track may not be sampled to extractthe low-level data. Rather, samples may be collected at different timesduring a track, such as 10 second samples every 10 seconds, or differentlength samples at fixed or random points during the track. For a trackwith a consistent rhythm, texture and pitch throughout the entire track,such as Pachelbel's Canon, written somewhere between 1680 and 1706, andconsidered the godfather of pop music because so much pop music is basedon a similar repetition, this form of averaging may be sufficient togenerate a singular RTP score that corresponds to the track.

Other tracks may vary significantly throughout, such as starting softlyand building up over time until there is a thunderous ending. Othertracks are literally all over the place and may have many differentmoods each with different intensity levels throughout. Bohemian Rhapsodyby Queen, for example, is six minutes long and includes severalsections, including an introduction, a ballad segment, an operaticpassage, a hard rock part, and a reflective coda. For a track likeBohemian Rhapsody, samples taken during the introduction, the balladsegment, the operatic passage, the hard rock part and the coda mayresult in completely different RTP scores. In an embodiment, samples maybe taken during the entire track or for sufficient lengths of time alonga large enough set of points during each track, such that different RTPscores may be determined for different parts of the same track. Forexample, a track may be 40% manic, 40% sad, and 20% happy, and may havedifferent intensity levels within each of those corresponding moods. Atrack with multiple moods may be referred to as a multi-mood track. Inorder to simplify the current disclosure, only RTP score, and thereforemood, is determined for each track, but it should be understood thatmulti-mood may be determined for each track as well.

FIG. 2 is an illustration of an embodiment of an exemplary overallsystem 200 architecture showing the various elements of the system andthe interaction that may occur between the front end 202 of the system200 and the back end 204 of the system 200. The front end 202 maycomprise a neural net trainer application 206, an audio classifierapplication 208 and an end user web application 210. The back end 204may comprise a training data source 212, an audio file source 214, auniversal database 216, an API server 218, and a website hosting system220.

As described above, the neural net trainer application 206, which may beoperated by a licensor that licenses music publishers to use the audioclassifier application 208 and provides training data from the trainingdata source 212. The training data source 212 may include a database ofmusic tracks and RTP scores that correspond to each track that serve asa sample set for training the neural net. The RTP scores may be humanderived or objectively derived as described herein. In an embodiment,the audio classifier application 208 may access neural networkalgorithms on the neural net trainer application 206 in order to analyzetracks from audio files source 214 having unknown RTP scores in order toRTP classify each track. In an embodiment, the neural network algorithmsused for both the low level data extraction and RTP classification maybe packaged and built into the audio classifier application 208 so thatRTP classification can be performed within the music classifierapplication 208 and without requiring interconnection to the neural nettrainer application 206 for that purpose. As further illustrated in FIG.3 below, the audio classifier application 208 may still be connected tothe neural net trainer application 206 so that the neural net trainerapplication may control licenses issued to music publishers for use ofthe audio classifier application 208.

The audio classifier application 208 may be operated by a licensed musicpublisher, which has access to the audio files source 214 and astreaming service. The audio files source 214 may be comprised ofdigital tracks of music in MP3, MP4, FLAC and other formats, as well asmetadata associated with each track, such as the title of each track,artist name, year of publication, genre, image art, etc. The audio filesmay be organized into collections of tracks that the music publisher maymake available to end users. To create a collection of tracks, the musicpublisher may select a user interface element within the audioclassifier application 208 that provides the music publisher withsoftware tools necessary to make a new collection. The music publishermay then select tracks from audio files source 214 that are to beincluded in the collection. Collections may also be created fromexisting playlists, imported based on spreadsheets of data developed offline, or in other ways.

So that physical copies of each track, i.e., the digital format file, donot need to be stored in a collection, a link associated with thelocation of each track in audio files source 214 may be used in thecollection. This enables the music publisher to include the same trackin multiple different collections without having to create duplicatecopies of such tracks. Once a collection had been assembled, the musicpublisher may input a title for the collection and select a save button.Ideally, the title of each collection may be unique so that musicpublishers and end users can distinguish between them. The musicpublisher may also input additional information about the collection,such as a short description of what the collection includes and savethat information with the collection, which would be stored in theuniversal database 216. The audio classifier application 208 may enablethe music publisher to view and edit the content of collections, such asadding and removing track links from the collection, as well as editingthe collection title and other information associated with thecollection.

Once a new or edited collection has been saved, the music publisher mayuse the neural net algorithms available to the audio classifierapplication 208 to analyze each track in the collection and determineeach track's RTP score, which may then be stored in the universaldatabase 216. Alternatively, the music publisher may determine the RTPscore for each track in a music publisher database prior to creating anycollections. The universal database 216 is referred to as being“universal” because it may not be unique to any music publisher. Allmusic publishers may share the same universal database 216.

There may be an advantage of a universal database 216. The neural netalgorithms may require up to a minute or two per track to determine theRTP score for each track, depending on processing power, bandwidth, etc.Additional time may be required to upload tracks to a streaming server.If hundreds or thousands of tracks are being RTP scored, this may take aconsiderable period. However, if a track had been previously RTP scoredby a different music publisher, it may not be necessary to analyze thattrack again. For example, if the music publishers included a pluralityof different radio stations, a number of stations may share asignificant number of tracks in their collections. Those tracks may beidentifiable by title, artist and year of first publication and thatinformation may be sufficient to enable the audio classifier applicationto identify tracks in the universal database 216 that have already beenRTP scored. In such a case, rather than take the time to RTP scoreexisting tracks again, the audio classifier application 208 may justreceive the existing RTP scores from the universal database 216 for eachof those tracks. Universally tracking RTP scores may be different fromuniversally storing uploaded tracks. For copyright reasons, only thelicensed music publisher to a track may be allowed to upload that trackto a streaming server. If a different music publisher also has rights tothe same track, that music publisher may have to upload the trackthemselves, even though the RTP score may already be available.

With reference to FIG. 1, FIG. 3A, FIG. 3B, FIG. 3C and FIG. 3D, the enduser web application 210 may be a browser-based application with anumber of different screens enabling different graphical user interfacecapabilities. The end user web application may be capable of operatingon any device with a web browser and a connection to the Internet. Theend user web application 210 may be hosted on a website hosting system220 and may enable end users authorized by a music publisher to createpersonalized playlists from collections stored in the universal database216 in association with that music publisher. Rather than have directaccess to the universal database 216, the end user web application mayonly access the content of the universal database 216 throughapplication programming interface (API) calls to API server 218. Forexample, through the API server 218, the import and view screen 310 ofthe end user web application 210 may enable an end user to access,import and view one or more collections stored in universal database216.

The end user web application 210 may not import any of the actualdigital audio files corresponding to the tracks from the universaldatabase 216, but rather may just import track data, such as the title,artist name, duration, decade of publication, RTP score, thecorresponding mood of each track in the collection, and a file hash thatwill cause the audio files source to stream the tracks to the musicimport and view screen 310 illustrated in FIG. 3A. Once one or morecollections have been received by the end user web application 210,through the music import and view screen 310, the end user may listen toand edit the one or more collections to remove any tracks in the one ormore collections that the end user does not want to include in aplaylist to be created. An end user may be able to see a list ofavailable collections by selecting the “+” button 312 in the collectionsmenu of FIG. 3A. Once a collection had been imported, the title of thecollection and other information about the collections may be displayedin a collection bar 314. As illustrated in FIG. 3A, the title of theimported collection is “CHILL”. The “stop” button (not shown in FIG. 3A)in the collection menu may be used to stop the import of a collection. Aview controller 316, when the arrow is pointing down, may be selected toopen a collection bar 314 to reveal the content of a collection, whichis essentially a playlist of tracks within the collection. To close thecollection, the arrow may be selected again when the view controller 316is pointing up. Numerous collections may be imported and stacked in theorder imported.

A play button associated with each track in the playlist of an opencollection may be selected to play that track in the music player 320.When the track starts playing, the play button in the playlist and inthe music player 320 may switch to a pause button. Once a track has beenselected to play, when that track has finished playing, the next trackin the collection may be played. The music player 320 may also be usedto start and pause play of tracks, starting with a selected track, whichmay be highlighted in some manner. The music player 320 may includeother typical music player functions, such as shuffle, fast reverse,fast forward and repeat. The music player 320 may also indicate thenumber of a track in the playlist of a collection as it is being played.If there are numerous collections with numerous playlists and tracks andthe user has been moving between the collections and playlists whileplaying a track, it may be difficult to find the track that is playingin its associated collection and playlist, so a locate button 322 may beselected to cause the track currently being played to be displayed in anopen collection.

To play a track, the API server 218 may communicate with the audioclassifier application 208 in order to have the desired track streamedto the end user web application 210 from the audio files source 214. Theplaylist of imported tracks may be referred to as a “premix” becausethose tracks represent a mixture of tracks from which an end user maysubsequently use to create one or more saved playlists. The premix maybe used over and over to create different saved playlists and added toby importing more track data. The premix may also be cleared by usingthe clear premix button 324 at any time so that a new premix may becreated. The premix may also be edited to remove individual tracks.Although not shown in FIG. 3A, a remove button associated with eachtrack may be selected to cause each selected track to be removed whenthe “−” button in the collection menu is selected.

Once an end user is satisfied with a premix, the create playlist screen330 of FIG. 3B may be used to create a personalized playlist from thepremix. Mood filters 332 may be used to select among different moodscorresponding to tracks to be included in a custom playlist. In anembodiment, there may be a total of eight moods, from which a total offour different moods may be selected of use in the mood filters 332,although any number of moods and mood filters may be utilized. In anembodiment, an end user may select only a single mood among the moodfilters 332, or all four moods. In an embodiment, the mood selectionsmay correspond to an average singular mood for a track or may correspondto the mood of a portion of a track. For example, multi-mood tracks mayhave multiple moods that correspond to different portions of the track.For each selected mood, the user may choose to include all tracks thatcorrespond to that mood in a playlist by only using the mood filters, orthe user may choose to further filter the playlist by using secondaryfilters 334. In an embodiment, the second filters 334 may includeselections corresponding to decades and artists, but may includeadditional selections, such as genre and other track metadata that maybe available.

In an embodiment, the second filters 334 may be used to include tracksor exclude tracks with certain characteristics. For example, to excludetracks that were published in the 1960's, the user may select the checkbox labeled “60s” in the secondary filters 334. To exclude a certainartist, the check box corresponding to that artist may be checked. Thefilters could also work as inclusion filters where selecting a check boxassociated with a decade or artist causes only tracks of the selecteddecade or artist to be included.

The current playlist 336 is initially populated with the premix, lessany tracks that were previously removed from the premix. If the premixincluded 400 tracks, the current playlist 336 may initially include all400 tracks from the premix. As the mood filters 332 are used, thecurrent playlist 336 may be updated based on the selections. If the moodcautious/excited was selected, and only 30 tracks out of the 400 trackscorrespond to the cautious/excited mood, then the current playlist maybe reduced to those 30 tracks. If a second mood was selected in the moodfilters 332, such as sad, and 100 tracks corresponded to the sad mood,then the current playlist would be updated to include those 100additional tracks for a total of 130 tracks. The user may then selectonly certain decades and artists to include in the current playlist 336,which may cause the number of tracks in the current playlist to befurther adjusted. Once the filtering has been completed, the user maythen listen to the customized playlist using the music player 320. Ifthe user is satisfied with the custom playlist, the playlist may benamed and saved by selecting name and save playlist button 338.

Named and saved playlists may appear in the all playlist section 342 ofplaylists screen 340, illustrated in FIG. 3C. Initially, all of theplaylists that have been named and saved are included in the allplaylists section 342. Each playlist includes a listing of the number oftracks included in that playlist, the name of the playlist, the durationof the playlist, which is the cumulative duration of all of the tracks,and an image if one exists. Each playlist may also include an icon inthe shape of an outlined star and an icon in the shape of a trashcan. Ifthe star icon is selected by a user, the playlist is moved to theselected to play section 344 and the star icon is filled in. If the staricon is selected again while the playlist is in the selected to playsection 344, the playlist is moved back to the all playlist section 342and the star icon is returned to the outlined star icon. Regardless ofwhether a playlist is in the all playlist section 342 or the selected toplay section 344, if the trashcan icon is selected, a modal window (notshown) is generated asking the user to confirm that the user wants todelete the playlist. If the user confirms, then the playlist ispermanently deleted.

When a playlist is added to the selected to play section 344, each ofthe tracks of that playlist is added to the current playlist 346. Eachtrack of the playlist is consecutively numbered, so it is possible totell where in the playlist the current track playing is located. As atrack is played, the play icon associated with the track transforms to apause icon. For each additional playlist added to the selected to playsection 344, the tracks for that playlist are added to the currentplaylist 346, concatenated to any prior playlist(s) already in thecurrent playlist 346. At any point in time there is a current playlist346, the music player 320 may be used to play any of the tracks in thecurrent playlist 346 and the locate button 322 of the music player 320may be used to locate the track in the current playlist 346 then beingplayed.

Once a playlist has been created, it can then be edited as furtherillustrated by the edit playlist screen 350 in FIG. 3D. To edit aplaylist, the user may select the select a playlist to edit button 352to see a modal window (not shown) from which a playlist to edit may beselected. The name of that playlist will then be displayed in theplaylist name window and the current playlist 354 associated therewithwill be displayed. Once the playlist has loaded, different tracks can beselected from the current playlist 354 to be moved or removed. To move atrack up or down in the order of the current playlist 354, either of the1 up or 1 down buttons 356 may be used or either of the up first or downlast buttons 358 may be used. Selecting either of the 1 up or 1 downbuttons 356 will move the selected track up one track or down one trackin the current playlist at a time, while selecting either of the upfirst or down last buttons 358 will move the selected track to the firsttrack or the last track in the current playlist 354. Tracks may also beremoved as desired by checking a remove radio button corresponding tothe track for removal and then using remove/update button 360. If theorder of the tracks in the current playlist 354 have been moved,selecting the remove/update button 360 will also save those changes. Thename of the playlist may also be changed by selecting the changeplaylist name button 362, which will generate a modal window (not shown)in which the playlist name may be edited and saved. Although trackscould also be added in an embodiment, that is not shown. Individualtracks may be played by playing the play button associated with eachtrack and the current playlist 354 can also be played with the musicplayer 320.

FIG. 4 illustrates a process for onboarding a music publisher. A new orrenewing music publisher may be onboarded at step 400 as a result of anagreement with a system operator. This may result in a neural nettrainer application 206 of the system operator creating a license filefor that music publisher at step 402. A license record may be generatedat step 404 and the back end 204 may then decide whether the licenserecord is new or a renewal at step 406 by evaluating a database at step408. If the music publisher is new, a new license record may be storedin the database and if the music publisher is renewing, the licenserecord for that music publisher may be updated in the database toreflect the new term of the license. At around the same time the licenserecord is created at step 404, a license file may be created at step410. The audio classifier application 208 may be tasked at step 412 withcreating a new audio classifier application that is unique to that musicpublisher at step 414 using the license file created at step 410.

Once the license file and license record are created, the license needsto be monitored to determine if the license is due for renewal or isoverdue for renewal at step 416. If the license is due for renewal, anemail will be sent to the music publisher at step 422 to determine ifthe publisher wants to renew. If the music publisher does renew, theneural net trainer 206 is notified at step 402, the license record isupdated at step 404, the back end decides that the license record is arenewal at step 406, and stores the updated license file in the database408. If the subscription is not renewed on time and is over-expired, theback end would send another email to the music publisher at step 422 andthe over-expired subscription would be updated in the database at step418. If the music publisher does not renew within a period, the expiredsubscription would be suspended at step 420 and the database would beupdated accordingly.

FIG. 5 illustrates a process for creating, publishing, and exportingtrack collections and making various option selections and inputtingrelated information. At step 500, the music publisher may initiate theprocess of creating a track list (i.e., a playlist or a collection oftracks), which may be based on one or more playlists and additionaltracks, or a modified version of the same. For example, a collectioncould be created offline and imported by the music publisher to theaudio classifier application 208, at step 502. Alternatively, the musicpublisher may use existing playlists in the audio classifierapplication, at step 504, to create a collection, which may be edited toadd and/or remove tracks as desired. Once the track list has beencreated, it can be published at step 506 to make it available to the enduser web application 210.

Regardless of whether the collection is published or not, it can besaved, at step 508, along with information about each track in thecollection and the collection itself. Track information may include afile name for each track, metadata associated with the track, such asthe title and artist, and a unique ID for each track, such as a filehash. Collection information may include a name for the collection, animage to represent the collection, the number of tracks in thecollection, the duration of the collection and possibly otherinformation, such as a date associated with when the track is firstpublished and an end date for the collection if the amount of time itwill be published is limited, which may be tracked at step 510, wherethe back end 204 decides if the collection is new and/or a renewal orupdate of a prior publication of a collection. All of the informationassociated with the collection may then be stored in the database atstep 512.

The music publisher may also make a number of selections for options andinput information associated with those options at step 520. Forexample, the music publisher may want to co-brand the end user webapplication 210 so that it includes branding information about the musicpublisher. If this option is selected, the music publisher may upload animage or text to be incorporated into particular areas of the end userweb application 210. A URL may also be associated with the image or textso that end users can access a website associated with the musicpublisher. The music publisher may also desire to select an audio optionto insert audio identifiers into a music stream being played by the enduser. This would enable, for example, the music publisher to make thestreamed music free to end users because commercials, which pay for thestreaming service, are also broadcast to end users on a periodic basis,or to enable public radio stations to provide identifiers to end usersin order to remind them where the end user web application has comefrom, or for other purposes. If this option is selected, the musicpublisher would be able to import audio break tracks, just like otheraudio tracks, queue the break tracks up, name and rename the breaks,restrict the length of each break or how many can be queued, and specifyother details.

Other options that may be selected by the music publisher include ascreen saver option and a time out option. The screen saver option wouldenable some type of message to be displayed on a periodic basis when theend user web application has been playing for a period of time, such asan image or text, that bounces around the screen. The time out optionmay give the music publisher the ability to stop streaming music to theend user web application after a period of time when the end user is notinteracting with the end user web application 210 so as to prevent themusic publisher from paying royalties to musicians or record labels ifthe end user is not actually listening to the streamed music. As all ofthe different option selections are made and associated information isinput, that information is stored in the database by the music publisherat step 522 and published to the end user web application asappropriate.

FIG. 6 illustrates a process for onboarding a new end user of the enduser web application 210 or renewing an existing end user. A new orrenewing end user may be onboarded at step 600 as a result of the enduser accessing a music publisher website at step 602. The musicpublisher website may collect information from the end user, such as aunique email address and password, so that a request, step 604, may besent from the music publisher website to the back end 204 in order todetermine whether the end user is new or a renewal end user. The musicpublisher may collect other information from the end user, its customer,such as financial information, etc., but only the unique email addressis sent to the system operator. If the end user is new, the systemoperator's back end 204 may generate, at step 606, a sponsor code 608,that may be sent to the music publisher website at step 610. If the enduser is just renewing, the sponsor code 608, which already exists, maybe sent back to the music publisher website, or a message may be sent tothe music publisher website that the end user is a renewal and thereforealready has a sponsor code.

The sponsor code, along with a unique email for the new end user, and astart and end date for the sponsor code may be stored, step 612, indatabase 614. The sponsor code may be a code that the music publishercan provide to an end user that has subscribed to the steaming servicesto be provided by the music publisher. The music publisher may providethe streaming service for free or for a fee, that is collected by themusic publisher through its own systems instead of the back end 204system operator. Sponsor codes remove the back end system operator frombeing involved with any financial transaction or exchange between themusic publisher and its customers. Sponsor codes also reduce the systemoperator's involvement in collecting any other information directly fromthe end user. Under different data privacy rules and regulations aroundthe world, data collectors often have different obligations than do dataprocessors and while this may not absolve the system operator fromhaving to comply with certain data privacy rules and regulations aroundthe world, it simplifies the system operator's obligations. The sponsorcode may also be generated in other ways, such as through a standaloneapplication that sends an API request to the back end system 204providing the same information that might be provided by a musicpublisher. The sponsor code would then be returned to the standaloneapplication and from there be provided to the end user in a similarmanner as the music publisher website.

Once the music publisher website has obtained the sponsor code 608 for anew end user, that sponsor code 608 and the corresponding unique emailmay be linked to the music publisher's end user web application at step616 and sent to the database 614. The sponsor code 608 may then be sentto the new end user at step 618. When a new end user accesses the enduser web application, the end user will be asked to register. The newend user will need to enter the sponsor code 608 and their unique emailand create a password at step 620. The sponsor code 608, email andpassword will then be sent to the back end 204 to confirm the sponsorcode 608 and email matches what is in the database 614 at step 622. Whena match is confirmed, the back end 204 updates the database with thepassword at step 624.

End users that have already registered would only need to enter theirunique email and their previously created password in order to be ableto use the end user web application 210 assigned to that musicpublisher. As there may be multiple different music publishers, some endusers may attempt to use the same email address with different musicpublishers. When an existing email address in the database is submittedagain with a registration, the end user may be told that that emailaddress is already in use and to use a different email address. In anembodiment, rather than combine all of the end users from differentmusic publishers into one login, each version of end user webapplication working with a music publisher may be separate. In such aversion, the sponsor code may remain displayed once authenticated andidentify the sponsor/music publisher so an end user knows which musicpublisher they are streaming from. That way the end user can use thesame email address and potentially the same password for each version ofthe end user web application.

The back end system may also be responsible for periodically checkingfor due or overdue renewals at step 630. End user's may periodically besent an email 632 directly from the back end system if an end user'ssubscription is approaching renewal or the email may be sent to themusic publisher so they may contact the end user instead. If an existingend user has not renewed a subscription and the subscription hasover-expired, at step 636, a further attempt may be made to contact theend user in order to get them to renew and the database 614 may beupdated with this information. If that effort is not successful, after aperiod, the subscription may be suspended, at step 638 in the database614. A suspended subscription may result in the email associated withthe subscription being deleted from the database 614.

A broad range of statistical data may be generated as a result of usageof the audio classifier application 208, the end user web application210 and the neural net trainer application 206. FIG. 7A illustrates aprocess for developing usage statistics at the music publisher level andFIG. 7B illustrates a process for developing usage statistics at auniversal level. In addition, other information, some of the data thatmay be tracked includes the number of unique visitors that haveregistered with each music publisher, how many users login each day,when they create a playlist, how many playlists they have, which tracksare most popular, and how long they use the app on a daily basis, etc.In order to track royalty payment obligations, every track that isplayed for more than a minimal period of time during different periodsmay be tracked, such as per day, month, quarter, etc. As different musicpublishers may have different contractual obligations or may havedifferent policies on when a track is considered to have been played,the timing of the minimal period may be variable and capable of beingset by the music publisher.

As illustrated in FIG. 7A, this data may be collected and reported atthe music publisher level for each of the different music publisheraudio classifier applications 208. In such a case, a music publisheraudio classifier application 208 may first make a request, at step 702,to the back end, such as through an API call, for certain data. The backend may then seek the corresponding usage data, step 704, from thedatabase at 706. The returned data may then be filtered by the back end,step 708, for example to format the data in a particular way. The datamay then be sent to the music publisher audio classifier application forfurther computation and the rendering of the requested information. Atimeline plot of sponsor codes being issued for a current musicpublisher may appear as depicted in Table 1.

In addition to making the data available to the music publisher, thesame information may be collected and batched in a report to theuniversal database 216, for example, on a periodic basis so collectiveinformation from every music publisher was available. This data may beaggregate, not personally identifiable information. FIG. 7B illustratesthe neural net trainer application 712, making a request of the back endfor the usage data of all of the music publishers, step 714, which ispulled from database 716, filtered by the back end at step 718, andcomputed and rendered by the neural net trainer application, at step720.

In an embodiment, a method for making categorized music tracks availableto an end user application, comprising: at one or more firstapplications, extracting low-level data from each track among aplurality of tracks to be RTP scored, wherein an RTP score includes arhythm score (R), a texture score (T), and a pitch score (P)respectively from a R range, a T range, and a P range, each RTP scorecorresponding to a category among a plurality of categories; at the oneor more first applications, analyzing the low-level data to develop aplurality of high-level acoustic attributes for each track among theplurality of tracks; at the one or more first applications, analyzingthe high-level acoustic attributes to develop computer-derived RTPscores for each track among the plurality of tracks; at the one or morefirst applications, utilizing the computer-derived RTP scores for eachtrack to determine a corresponding category for each track among theplurality of categories; at the one or more first applications, creatingone or more collections of tracks from among the plurality of tracksbased on tracks corresponding to one or more categories among theplurality of categories; at the one or more first applications,publishing the one or more collections on a network accessible to an enduser application configured to create one or more playlists based on theone or more collections; and making one or more of the tracks in the oneor more playlists available to the end user application.

The embodiment further comprising: at the one or more firstapplications, storing the computer-derived RTP score for each track in auniversal database accessible to each of the one or more firstapplications; and at the one or more first applications, prior toextracting the low-level data from a track among the plurality oftracks, checking the universal database to determine if thecomputer-derived RTP score for the track has already been stored inwhich case the extracting low-level data, the analyzing the low-leveldata, and the analyzing the high-level acoustic attributes for the trackare bypassed.

In the embodiment, wherein the one or more collections are published tothe end user application through an intermediate API server incommunication with the universal database.

The embodiment, further comprising: at the one or more firstapplications, uploading one or more of the tracks among the plurality oftracks having computer-derived RTP scores to a streaming server; andwherein the making one or more of the tracks in the one or more playlistavailable to the end user application includes streaming from thestreaming server the one or more tracks in the one or more playlists tothe end user application.

In the embodiment, wherein the one or more collections are published tothe end user application through an intermediate API server.

In the embodiment, wherein a training application provides one or moreof low-level training data and high-level acoustic attributes trainingdata to the one or more first applications.

In the embodiment, wherein the training application authorizes the oneor more first applications to publish the one or more collections.

In the embodiment, wherein each of the one or more first applicationsauthorize the one or more end user applications to access the one ormore published collections.

The embodiment further comprising: at a first application among the oneor more first applications, causing a sponsor code to be generated forthe end user application and sent to a website affiliated with anoperator of the first application; at the website, sending the sponsorcode to an end user; and at the end user application, receiving thesponsor code to authorize the end user application's access to the oneor more published collections.

In an embodiment, a system for making categorized music tracks availableto an end user application, comprising: one or more first applicationsconfigured to: extract low-level data from each track among a pluralityof tracks to be RTP scored, wherein an RTP score includes a rhythm score(R), a texture score (T), and a pitch score (P) respectively from a Rrange, a T range, and a P range, each RTP score corresponding to acategory among a plurality of categories; analyze the low-level data todevelop a plurality of high-level acoustic attributes for each trackamong the plurality of tracks; analyze the high-level acousticattributes to develop computer-derived RTP scores for each track amongthe plurality of tracks; utilize the computer-derived RTP scores foreach track to determine a corresponding category for each track amongthe plurality of categories; create one or more collections of tracksfrom among the plurality of tracks based on tracks corresponding to oneor more categories among the plurality of categories; and publish theone or more collections to a network; one or more end user applicationsconfigured to create one or more playlists based on the published one ormore collections; and a streaming server configured to communicate withthe one or more first applications, to communicate and the one or moreend user applications, and to make one or more of the tracks in the oneor more playlists available to the one or more end user applications.

The embodiment further comprising a universal database accessible toeach of the one or more first applications, wherein the one or morefirst applications are further configured to: store the computer-derivedRTP score for each track in the universal database; and prior toextracting the low-level data from a track among the plurality oftracks, check the universal database to determine if thecomputer-derived RTP score for the track has already been stored inwhich case the one or more first applications bypass extractinglow-level data, analyzing the low-level data, and analyzing thehigh-level acoustic attributes for the track.

The embodiment further comprising an intermediate API server and whereinthe one or more collections are published to the end user applicationthrough the intermediate API server in communication with the universaldatabase.

In the embodiment, wherein the one or more first applications arefurther configured to upload one or more of the tracks among theplurality of tracks having computer-derived RTP scores to the streamingserver; and wherein the streaming server makes one or more of the tracksin the one or more playlist available to the one or more end userapplications by streaming from the streaming server the one or moretracks in the one or more playlists to the one or more end userapplications.

The embodiment further comprising an intermedia API server and whereinthe one or more collections are published to the end user applicationthrough the intermediate API server.

The embodiment further comprising a training application configured toprovide one or more of low-level training data and high-level acousticattributes training data to the one or more first applications.

In the embodiment wherein the training application is configured toauthorize the one or more first applications to publish the one or morecollections.

In the embodiment wherein each of the one or more first applications isconfigured to authorize the one or more end user applications to accessthe one or more published collections.

In the embodiment wherein a first application among the one or morefirst applications is configured to cause a sponsor code to be generatedfor the end user application and to send the sponsor code to a websiteaffiliated with an operator of the first application; wherein thewebsite is configured to send the sponsor code to an end user; andwherein the end user application is configured to receive the sponsorcode in order to authorize the end user application's access to the oneor more published collections.

Conditional language used herein, such as, among others, “can,” “could,”“might,” “may,” “e.g.,” and the like, unless specifically statedotherwise, or otherwise understood within the context as used, isgenerally intended to convey that certain examples include, while otherexamples do not include, certain features, elements, and/or steps. Thus,such conditional language is not generally intended to imply thatfeatures, elements and/or steps are in any way required for one or moreexamples or that one or more examples necessarily include logic fordeciding, with or without author input or prompting, whether thesefeatures, elements and/or steps are included or are to be performed inany particular example. The terms “comprising,” “including,” “having,”and the like are synonymous and are used inclusively, in an open-endedfashion, and do not exclude additional elements, features, acts,operations, and so forth. Also, the term “or” is used in its inclusivesense (and not in its exclusive sense) so that when used, for example,to connect a list of elements, the term “or” means one, some, or all ofthe elements in the list.

In general, the various features and processes described above may beused independently of one another or may be combined in different ways.All possible combinations and subcombinations are intended to fallwithin the scope of this disclosure. In addition, certain method orprocess blocks may be omitted in some implementations. The methods andprocesses described herein are also not limited to any particularsequence, and the blocks or states relating thereto can be performed inother sequences that are appropriate. For example, described blocks orstates may be performed in an order other than that specificallydisclosed, or multiple blocks or states may be combined in a singleblock or state. The example blocks or states may be performed in serial,in parallel, or in some other manner. Blocks or states may be added toor removed from the disclosed examples. The example systems andcomponents described herein may be configured differently thandescribed. For example, elements may be added to, removed from, orrearranged compared to the disclosed examples.

While certain example or illustrative examples have been described,these examples have been presented by way of example only and are notintended to limit the scope of the subject matter disclosed herein.Indeed, the novel methods and systems described herein may be embodiedin a variety of other forms. The accompanying claims and theirequivalents are intended to cover such forms or modifications as wouldfall within the scope and spirit of certain of the subject matterdisclosed herein.

What is claimed:
 1. A method for making categorized music tracksavailable to an end user application, comprising: at one or more firstapplications, extracting low-level data from each track among aplurality of tracks to be RTP scored, wherein an RTP score includes arhythm score (R), a texture score (T), and a pitch score (P)respectively from a R range, a T range, and a P range, each RTP scorecorresponding to a category among a plurality of categories; at the oneor more first applications, analyzing the low-level data to develop aplurality of high-level acoustic attributes for each track among theplurality of tracks; at the one or more first applications, analyzingthe high-level acoustic attributes to develop computer-derived RTPscores for each track among the plurality of tracks; at the one or morefirst applications, utilizing the computer-derived RTP scores for eachtrack to determine a corresponding category for each track among theplurality of categories; at the one or more first applications, creatingone or more collections of tracks from among the plurality of tracksbased on tracks corresponding to one or more categories among theplurality of categories; at the one or more first applications,publishing the one or more collections on a network accessible to an enduser application configured to create one or more playlists based on theone or more collections; and making one or more of the tracks in the oneor more playlists available to the end user application.
 2. The methodof claim 1, further comprising: at the one or more first applications,storing the computer-derived RTP score for each track in a universaldatabase accessible to each of the one or more first applications; andat the one or more first applications, prior to extracting the low-leveldata from a track among the plurality of tracks, checking the universaldatabase to determine if the computer-derived RTP score for the trackhas already been stored in which case the extracting low-level data, theanalyzing the low-level data, and the analyzing the high-level acousticattributes for the track are bypassed.
 3. The method of claim 2, whereinthe one or more collections are published to the end user applicationthrough an intermediate API server in communication with the universaldatabase.
 4. The method of claim 1, further comprising: at the one ormore first applications, uploading one or more of the tracks among theplurality of tracks having computer-derived RTP scores to a streamingserver; and wherein the making one or more of the tracks in the one ormore playlist available to the end user application includes streamingfrom the streaming server the one or more tracks in the one or moreplaylists to the end user application.
 5. The method of claim 1, whereinthe one or more collections are published to the end user applicationthrough an intermediate API server.
 6. The method of claim 1, wherein atraining application provides one or more of low-level training data andhigh-level acoustic attributes training data to the one or more firstapplications.
 7. The method of claim 6, wherein the training applicationauthorizes the one or more first applications to publish the one or morecollections.
 8. The method of claim 1, wherein each of the one or morefirst applications authorize the one or more end user applications toaccess the one or more published collections.
 9. The method of claim 8,further comprising: at a first application among the one or more firstapplications, causing a sponsor code to be generated for the end userapplication and sent to a website affiliated with an operator of thefirst application; at the website, sending the sponsor code to an enduser; and at the end user application, receiving the sponsor code toauthorize the end user application's access to the one or more publishedcollections.
 10. A system for making categorized music tracks availableto an end user application, comprising: one or more first applicationsconfigured to: extract low-level data from each track among a pluralityof tracks to be RTP scored, wherein an RTP score includes a rhythm score(R), a texture score (T), and a pitch score (P) respectively from a Rrange, a T range, and a P range, each RTP score corresponding to acategory among a plurality of categories; analyze the low-level data todevelop a plurality of high-level acoustic attributes for each trackamong the plurality of tracks; analyze the high-level acousticattributes to develop computer-derived RTP scores for each track amongthe plurality of tracks; utilize the computer-derived RTP scores foreach track to determine a corresponding category for each track amongthe plurality of categories; create one or more collections of tracksfrom among the plurality of tracks based on tracks corresponding to oneor more categories among the plurality of categories; and publish theone or more collections to a network; one or more end user applicationsconfigured to create one or more playlists based on the published one ormore collections; and a streaming server configured to communicate withthe one or more first applications, to communicate and the one or moreend user applications, and to make one or more of the tracks in the oneor more playlists available to the one or more end user applications.11. The system of claim 10, further comprising a universal databaseaccessible to each of the one or more first applications, wherein theone or more first applications are further configured to: store thecomputer-derived RTP score for each track in the universal database; andprior to extracting the low-level data from a track among the pluralityof tracks, check the universal database to determine if thecomputer-derived RTP score for the track has already been stored inwhich case the one or more first applications bypass extractinglow-level data, analyzing the low-level data, and analyzing thehigh-level acoustic attributes for the track.
 12. The system of claim11, further comprising an intermediate API server and wherein the one ormore collections are published to the end user application through theintermediate API server in communication with the universal database.13. The system of claim 10, wherein the one or more first applicationsare further configured to upload one or more of the tracks among theplurality of tracks having computer-derived RTP scores to the streamingserver; and wherein the streaming server makes one or more of the tracksin the one or more playlist available to the one or more end userapplications by streaming from the streaming server the one or moretracks in the one or more playlists to the one or more end userapplications.
 14. The system of claim 10, further comprising anintermedia API server and wherein the one or more collections arepublished to the end user application through the intermediate APIserver.
 15. The system of claim 10, further comprising a trainingapplication configured to provide one or more of low-level training dataand high-level acoustic attributes training data to the one or morefirst applications.
 16. The system of claim 15, wherein the trainingapplication is configured to authorize the one or more firstapplications to publish the one or more collections.
 17. The system ofclaim 10, wherein each of the one or more first applications isconfigured to authorize the one or more end user applications to accessthe one or more published collections.
 18. The system of claim 17,wherein a first application among the one or more first applications isconfigured to cause a sponsor code to be generated for the end userapplication and to send the sponsor code to a website affiliated with anoperator of the first application; wherein the website is configured tosend the sponsor code to an end user; and wherein the end userapplication is configured to receive the sponsor code in order toauthorize the end user application's access to the one or more publishedcollections.